package top.kent90.service;

import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;
import top.kent90.dao.SysUserDao;
import top.kent90.dao.ZczyUserDao;
import top.kent90.pojo.SysUser;
import top.kent90.pojo.ZczyUser;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 登录服务实现类
 *
 * @service 需要用dubbo的包，不要导错
 */

@Service
public class LoginServiceImpl implements LoginService {

    @Autowired
    ZczyUserDao zczyUserDao;

    @Autowired
    SysUserDao sysUserDao;

    /**
     * 通过手机号查询用户信息（pc端）
     * @param mobile 用户手机号
     * @return 返回查询的用户信息，没有用户为null
     */
    @Override
    public ZczyUser queryByMobile(String mobile) {
        return zczyUserDao.queryByMobile(mobile);
    }

    /**
     * 通过用户名查询用户信息（后台管理）
     * @param loginName 登录名
     * @return 返回查询的用户信息，没有用户为null
     */
    @Override
    public SysUser queryByLoginName(String loginName) {
        return sysUserDao.queryByLoginName(loginName);
    }

    /**
     * 查询后台用户登陆后的菜单
     * @param map
     * @return
     * @throws Exception
     */
    @Override
    public List<Map<String, Object>> queryMenu(Map<String, Object> map) throws Exception {
        List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
        if("1".equals(map.get("identity"))){
            System.out.println("-------查询所有用户列表queryAllSysMenu-------");
            list = sysUserDao.queryAllSysMenu(map);
            System.out.println("查询所有用户列表queryAllSysMenu----------"+list);
        }else{
            System.out.println("-------查询用户列表querySysMenu-------");
            list = sysUserDao.querySysMenu(map);
            System.out.println("查询用户列表querySysMenu---------"+list);
        }
        int lev = Integer.parseInt(map.get("lev")+"")+1;
        List<Map<String,Object>> dataList = new ArrayList<Map<String,Object>>();
        for(Map<String,Object> map2 : list){
            Map<String,Object> dataMap = new HashMap<String, Object>();
//            dataMap.put("id", map2.get("menu_id"));
            dataMap.put("id", map2.get("functionCode"));
            dataMap.put("url", map2.get("url"));
            dataMap.put("name", map2.get("menu_name"));
            dataMap.put("iconfont", map2.get("icon"));
            if(Integer.parseInt(map2.get("subMenuNumbers").toString())>0){
                Map<String,Object> map3 = new HashMap<String,Object>();
                map3.put("userId", map.get("userId"));//�û�id
                map3.put("identity", map.get("identity"));
                map3.put("lev", lev);
                map3.put("pMenuId", map2.get("functionCode"));
//                map3.put("pMenuId", map2.get("menu_id"));
                dataMap.put("sub", queryMenu(map3));
            }
            dataList.add(dataMap);
            System.out.println("dataList------"+dataList);
        }
        return dataList;
    }
}
